<?php

namespace Medicina\KernelBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints as DoctrineAssert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
 
/**
 * Medicina\KernelBundle\Entity\Resolucion
 *
 * @ORM\Table(name="resolucion")
 * @ORM\HasLifecycleCallbacks
 * @ORM\Entity
 * @UniqueEntity(fields={"numero"}, message="El valor ingresado ya existe. Debe ingresar uno nuevo")
 */
class Resolucion {

    /**
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     *  @ORM\Column(name="fecha", type="date", nullable=false)
     */
    private $fecha;

    /**
     *
     * @ORM\Column(name="numero", type="integer", length=10 ,nullable=false, unique=true)
     */
    private $numero;

    /**
     *
     * @ORM\Column(name="observacion", type="text", nullable=true)
     */
    private $observacion;

    /**
     * @ORM\ManyToOne(targetEntity="Concurso", inversedBy="resoluciones" , cascade={"persist"})
     * @ORM\JoinColumn(name="concurso_id", referencedColumnName="id")
     * 
     */
    private $concurso;

    /**
     * @ORM\ManyToOne(targetEntity="Oficina", inversedBy="resoluciones")
     * @ORM\JoinColumn(name="oficina_id", referencedColumnName="id")
     * 
     */
    private $oficina;


   protected $oficinaQueCargo;
   
   public function __construct() {
        $this->setFecha( new \DateTime);
    }

     public function getOficinaQueCargo() {
        return $this->oficinaQueCargo;
    }

    public function setOficinaQueCargo($oficina) {
        $this->oficinaQueCargo = $oficina;
    }

    /**
     * @ORM\PrePersist()
     * @ORM\PreUpdate()
     */
    public function preUpdate() {
        if ($this->getOficina() === null and $this->getOficinaQueCargo() !=null) {
            $this->setOficina($this->getOficinaQueCargo());
        }
    }

    
    public function getId()
    {
        return $this->id;
    }

 
    public function setFecha($fecha)
    {
        $this->fecha = $fecha;
    }


    public function getFecha()
    {
        return $this->fecha;
    }


    public function setNumero($numero)
    {
        $this->numero = $numero;
    }

 
    public function getNumero()
    {
        return $this->numero;
    }

 
    public function setObservacion($observacion)
    {
        $this->observacion = $observacion;
    }

   
    public function getObservacion()
    {
        return $this->observacion;
    }

 
    public function setConcurso(\Medicina\KernelBundle\Entity\Concurso $concurso)
    {
        $this->concurso = $concurso;
    }


    public function getConcurso()
    {
        return $this->concurso;
    }

    
    public function setOficina(\Medicina\KernelBundle\Entity\Oficina $oficina)
    {
        $this->oficina = $oficina;
    }

  
    public function getOficina()
    {
        return $this->oficina;
    }
    public function getNombreOficina(){
        $oficina = $this->getOficina();
        if( $oficina !== NULL){
        return $this->getOficina()->getNombre();}  else {
            return "";
}
        
    }
    public function getJsonForAjaxEdit(){
        return $output = array(
            'numero'=>$this->getNumero(), 
            'fecha'=>$this->getFecha()->format('d/m/Y'), 
            'observacion'=>$this->getObservacion(), 
            'oficina'=>$this->getNombreOficina()
            
                
                );
        
    }
}